#pragma once

#include <iostream>
#include <vector>
#include <string>

#include "Resource.h"
#include "SDL.h"
#include "SurfaceResource.h"


class ResourceManager
{
private:
	std::vector<Resource*> m_resources;
	
public:
	enum ResourceType {RESOURCE_SURFACE, RESOURCE_SOUND, RESOURCE_ANIM};
	ResourceManager();
	~ResourceManager();

	/*
		consider using ResourceManager::BindToResource() before using GetResource()
	*/
	Resource* GetResource(int rID) { return m_resources[rID]; }

	int LoadResource(ResourceType resType, std::string path)
	{
		if(resType == RESOURCE_SURFACE)
		{
			m_resources.push_back(new SurfaceResource(path)));
		}
	}
	int BindToResource(int rID) {}
	void ReleaseFromResource(int rID) {}

};